package com.gopay.bis.service.bank;

import java.util.List;

import com.gopay.common.domain.bank.BisBankExpayDtl;
import com.gopay.common.domain.bank.ExPayBaseMessage;
import com.gopay.common.exception.GopayException;

/**
 * 快捷流水service
 * 
 * @date 2016年12月27日 下午5:48:02
 */
public interface BisExpayDtlService {

    /**
     * 新增快捷流水
     * 
     * @return
     * @throws GopayException
     */
    public BisBankExpayDtl addExpayDtl(ExPayBaseMessage base) throws GopayException;

    /**
     * 更新短信申请状态
     * 
     * @param base
     * @throws GopayException
     */
    public void updateSmsApplyDtl(ExPayBaseMessage base) throws GopayException;
    
    /** 
     * 获取快捷流水记录
     * @param base
     * @param status
     * @return
     */
    public List<BisBankExpayDtl> getBisBankExpayDtlList(ExPayBaseMessage base,String status) throws GopayException;

    /**
     * 更新短信授权状态
     * 
     * @param base
     * @throws GopayException
     */
    public void updateSmsAuthDtl(ExPayBaseMessage base) throws GopayException;

    /**
     * 发短信时校验要素是否匹配
     * 
     * @param base
     * @throws GopayException
     */
    public void checkSendSmsCerElements(ExPayBaseMessage base) throws GopayException;

    /**
     * 校验短信时候检查要素是否匹配 ，是否短信申请
     * 
     * @param base
     * @throws GopayException
     */
    public void checkSmsCerElements(ExPayBaseMessage base) throws GopayException;

    /**
     * 支付时检查要素是否匹配，是否短信授权
     * 
     * @param base
     * @throws GopayException
     */
    public void checkPayCerElements(ExPayBaseMessage base) throws GopayException;
    
    
    /** 
     * 通过订单号，要素加密值，订单状态获取快捷流水记录
     * @param base
     * @param status
     * @return
     * @throws GopayException 
     * @author w_jiqing 
     */
    public List<BisBankExpayDtl> getBisBankExpayDtlListbyElements(ExPayBaseMessage base,String status) throws GopayException;

}
